Manon.icu

I'm here to make you a better developer by teaching you everything I know about building for the web.

Published 2022-05-22

Next.js - API Routes

pages/api 目录下的任何文件都将作为 API 端点映射到 /api/*,而不是 page。这些文件只会增加服务端文件包的体积,而不会增加客户端文件包的大小。

Next.js中创建 rest api 的方式如下:

export default (req, res) => {
  console.log(req, res)
  return {}
}
  • req: 请求对象,http.IncomingMessage 实例
  • res: 响应对象,http.ServerResponse 实例

响应

  • res.status(code):设置响应状态码
  • res.json(data):设置响应数据
  • res.send(data):设置响应数据
  • res.redirect(url):重定向

创建一个响应:

export default function handler(req, res) {
  res.status(200).json({message: 'Hello from Next.js!'})
}

创建路由

创建一个简单的 rest api

export default (req, res) => {
  res.statusCode = 200
  res.setHeader('Content-Type', 'application/json')
  res.json({
    message: 'Hello World'
  })
}

创建动态 API 路由:pages/api/post/[pid].js

export default function handler(req, res) {
  const {pid} = req.query
  res.end(`Post: ${pid}`)
}

创建匹配所有路由:pages/api/post/[...slug].js

export default function handler(req, res) {
  const {slug} = req.query
  res.end(`Post: ${slug.join(', ')}`)
}

启动服务:

npm run dev

验证结果:

Y72joU

Comments

No Comments!